import axios from 'axios';
import Cookie from 'js-cookie'
import {MessageBox} from 'element-ui'
import {Message} from 'element-ui'
import router from '../router'
import Oauth from './oauth'

const instance = axios.create();
instance.defaults.timeout = 30000;
instance.defaults.withCredentials = true;
instance.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8';
instance.defaults.baseURL = 'http://localhost:8081';
instance.interceptors.request.use(function (config) {
    let access_token = Cookie.get('access_token');
    if (access_token) {
        config.headers['Authorization'] = "Bearer " + access_token;
    }
    return config;
}, function (error) {
    return Promise.reject(error);
});

instance.interceptors.response.use(function (response) {
    return response.data;
}, function (error) {
    switch (error.response.status) {
        case 400:
            error.message = '错误请求';
            break;
        case 401:
            Oauth.authorize();
            break;
        case 403:
            error.message = '拒绝访问';
            break;
        case 404:
            error.message = '请求错误,未找到该资源';
            break;
        case 405:
            error.message = '请求方法未允许';
            break;
        case 408:
            error.message = '请求超时';
            break;
        case 500:
            error.message = '服务器端出错';
            break;
        case 501:
            error.message = '网络未实现';
            break;
        case 502:
            error.message = '网络错误';
            break;
        case 503:
            error.message = '服务不可用';
            break;
        case 504:
            error.message = '网络超时';
            break;
        case 505:
            error.message = 'http版本不支持该请求';
            break;
        default:
            error.message = `连接错误${error.response.status}`
    }
    return Promise.reject(error);
});
export default instance;